home *** CD-ROM | disk | FTP | other *** search
- /******************************************************************************
- *
- * NSSDC/CDF Header file for CDFwalk.
- *
- * Version 2.0, 4-Mar-92, ST Systems (STX)
- *
- * Modification history:
- *
- * V1.0 25-Jul-91, H Leckner Original version (for CDF V2.1).
- * V1.1 11-Sep-91, J Love Modified for IBM-PC port.
- * V1.2 15-Oct-91, H Leckner Changed for IBM-RS6000 port.
- * V2.0 4-Mar-92, J Love IBM PC port. CDF V2.2.
- *
- ******************************************************************************/
-
- #if defined(vms)|defined(ultrix)|defined(__MSDOS__)|defined(AIX)|defined(hpux)
- #define CONTINUE 10
- #else
- #if defined(unix)
- #define CONTINUE 13
- #endif
- #endif
-
- #define NOCONTINUE -10
- #define PERIOD 46
- #define DUPLICATE 0
- #define OK_RESP -1
- #define YES 89
- #define yes 121
- #define NO 78
- #define no 110
- #define MINMAX_SIZE 15
- #define EPOCH_WIDTH 25
- #if defined(__MSDOS__)
- #define MAX_VALUES 500
- #else
- #define MAX_VALUES 5000
- #endif
- #define TERMINAL 1
- #define FILEOUT 2
- #define TERMFILE 3
- #define CDFOUT 4
- #define MINMAX 1
- #define LIST 2
- #define BORDER 1
- #define NOBORDER 0
- #define NOERASE 0
- #define ERASE 1
- #define RINGBELL -1
- #define NOBELL 0
- #define WALKER 1;
- #define MENU 1
- #define HELP_MENU 2
- #define MIN_MAX_ERROR 0
- #define SCALAR -1
- #define INCREMENT 1
- #define DECREMENT -1
- #define DONE 0
- #define MANUAL 0
- #define AUTO 1
- #define DIRECTORY 2
- #define NOPAUSE 0
- #define PAUSE 1
- #define WALK_FIELD 0
- #define CDF_FIELD 1
- #define HELP_FIELD 2
- #define EXIT 3
- #define NOTTHERE -1
- #define CDFWALK_MAX_VAR_LENGTH 8
- #define CDFWALK_MAX_VARS_SCREEN 27
- #define MULTIPLE -1
- #define PAGEUP 85
- #define PAGEup 117
- #define PAGEdown 68
- #define PAGEDOWN 100
- #define QUIT 81
- #define quit 113
- #define INPUT 73
- #define input 105
- #define NEWVAR 86
- #define newvar 118
- #define NODATA 9562 /* Random */
- #define RECORD 0
- #define CNTRLM "CTL-F=Action "
- #define CNTRLW "CTL-W=Redraw "
- #define CNTRLD "CTL-D = Delete to end-of-line "
- #define CNTRLN "CTL-N = Move to end-of-line "
- #define RET "RET=Select "
- #define BACK "CTL-B=Back "
- #define FORWARD "RET=Next field "
- #define BACKWARD "CTL-B=Back field "
- #define HLP "HELP=CTL-F" /* V1.1 */
- #define DEL "DEL=DELETE "
- #define PUP "U=Page up "
- #define PDOWN "D=Page down "
- #define Qdes "Q=Quit popup "
- #define UP "UP_ARROW =Up "
- #define DOWN "DOWN_ARROW=Down "
- #define LEFT "LEFT_ARROW=Prev "
- #define RIGHT"RIGHT_ARROW=Next "
- #define LEFTW "LEFT_ARROW = -1 "
- #define RIGHTW "RIGHT_ARROW= +1 "
- #define Ides "I=Input "
- #define Vdes "V=Scroll "
- #define CNTRLP "CTL-P=Pop-up "
- #define C (*CDF)
- #define NC (*new_CDF)
- #define S (*screen)
- #define V variables[var_num]
- #define VN (*variables)[var_num]
- #define VA variables[var_num].attr[attr_num]
- struct GLOBAL_struct
- {
- WINDOWid CDF_vid;
- WINDOWid VAR_vid;
- WINDOWid KEY_vid;
- WINDOWid MES_vid;
- WINDOWid DIR_vid;
- WINDOWid DIS_vid;
- WINDOWid FIELD_vid;
- WINDOWid DIM_vid;
- WINDOWid HELP_vid;
- WINDOWid WALK_vid;
- WINDOWid VARSCROLL_vid;
- };
- struct vid_struct
- {
- int row;
- int col;
- char label[80];
- };
- struct variable_struct
- {
- char var_mnemonic[CDF_VAR_NAME_LEN];
- long int data_type;
- long int num_bytes;
- long int record_variance;
- long int dim_variances[CDF_MAX_DIMS];
- long int var_num;
- long int out_var_num;
- double min;
- double max;
- long int filter;
- long int var_mnemonic_len;
- long int scalar;
- long int record_variable;
- long int dim_num;
- long int dim_variable;
- long int num_values;
- CDFstatus rcode;
- double *bin_value;
- char *char_value;
- };
- struct CDF_struct
- {
- char CDF_name[CDF_PATHNAME_LEN];
- CDFid CDF_id;
- long int max_record_num;
- long int num_dims;
- long int dim_sizes[CDF_MAX_DIMS];
- long int num_vars;
- long int num_attrs;
- long int num_scalars;
- long int max_var_len;
- long version;
- long release;
- char text[CDF_DOCUMENT_LEN];
- long encoding;
- long majority;
- long int record_var_num;
- long int EPOCH_var_num;
- long int dim_var_num[CDF_MAX_DIMS];
- long int **all_dim_var_num;
- long int num_per_dim[CDF_MAX_DIMS+1];
- long int first_scalar_var_num;
- };
- union mixed
- {
- double r8;
- float r4;
- long int i4;
- unsigned long int ui4;
- short int i2;
- unsigned short int ui2;
- Schar byte;
- Uchar ubyte;
- char *string;
- };
-
- #if defined(CDFWALK)
- struct EPOCH ep;
- #else
- extern struct EPOCH ep;
- #endif
-
- /******************************************************************************
- * Contents of 'cdflist_vid_def.h' start here.
- ******************************************************************************/
-
- #ifdef vms
- #define CDF_ROWS 4
- #define CDF_COLUMNS 78
- #define CDF_ROW_PASTE 2
- #define CDF_COL_PASTE 2
- #define CDF_NAME_ROW 1
- #define CDF_NAME_COL 11
- #define CDF_NAME_LENGTH 68
- #define CDF_NUM_ELEMENTS 6
- #define VAR_ROWS 9
- #define VAR_COLUMNS 78
- #define VAR_ROW_PASTE 8
- #define VAR_COL_PASTE 2
- #define VAR_NUM_ELEMENTS 54
- #define VAR_MINMAX_LEN 14
- #define VARSCROLL_ROWS 1
- #define VARSCROLL_COLUMNS 36
- #define VARSCROLL_ROW_PASTE 6
- #define VARSCROLL_COL_PASTE 2
- #define VARSCROLL_NUM_ELEMENTS 1
- #define KEY_ROWS 2
- #define KEY_COLUMNS 78
- #define KEY_ROW_PASTE 19
- #define KEY_COL_PASTE 2
- #define KEY_NUM_ELEMENTS 1
- #define MES_ROWS 1
- #define MES_COLUMNS 78
- #define MES_ROW_PASTE 23
- #define MES_COL_PASTE 2
- #define MES_NUM_ELEMENTS 1
- #define WALK_COLUMNS 52
- #define WALK_ROW_PASTE 2
- #define WALK_COL_PASTE 2
- #define FIELD_ROWS 4
- #define FIELD_COLUMNS 21
- #define FIELD_ROW_PASTE 2
- #define FIELD_COL_PASTE 56
- #define FIELD_NUM_ELEMENTS 4
- #define DIM_ROWS 8
- #define DIM_COLUMNS 10
- #define DIM_ROW_PASTE 2
- #define DIM_COL_PASTE 56
- #define DIS_ROWS 8
- #define DIS_COLUMNS 40
- #define DIS_ROW_PASTE 2
- #define DIS_COL_PASTE 38
- #define DIR_ROWS 10
- #define DIR_COLUMNS 27
- #define DIR_ROW_PASTE 2
- #define DIR_COL_PASTE 52
- #define HELP_ROWS 10
- #define HELP_COLUMNS 78
- #define HELP_ROW_PASTE 6
- #define HELP_COL_PASTE 2
- #define CDFNAME_ELEMENT_NUM 1
- #define NUMVAR_ELEMENT_NUM 2
- #define NUMREC_ELEMENT_NUM 3
- #define NUMDIM_ELEMENT_NUM 4
- #define DIMSIZ_ELEMENT_NUM 5
- #define ROW_OFFSET 0
- #define COL_OFFSET 0
- #endif
-
- #if defined(unix) | defined(__MSDOS__)
- #define CDF_ROWS 6
- #define CDF_COLUMNS 79
- #define CDF_ROW_PASTE 0
- #define CDF_COL_PASTE 1
- #define CDF_NAME_ROW 1
- #define CDF_NAME_COL 11
- #define CDF_NAME_LENGTH 68
- #define CDF_NUM_ELEMENTS 7
- #define VAR_ROWS 11
- #define VAR_COLUMNS 79
- #define VAR_ROW_PASTE 6
- #define VAR_COL_PASTE 1
- #define VAR_NUM_ELEMENTS 54
- #define VAR_MINMAX_LEN 14
- #define VARSCROLL_ROWS 3
- #define VARSCROLL_COLUMNS 37
- #define VARSCROLL_ROW_PASTE 4
- #define VARSCROLL_COL_PASTE 1
- #define VARSCROLL_NUM_ELEMENTS 1
- #define KEY_ROWS 4
- #define KEY_COLUMNS 79
- #define KEY_ROW_PASTE 17
- #define KEY_COL_PASTE 1
- #define KEY_NUM_ELEMENTS 1
- #define MES_ROWS 3
- #define MES_COLUMNS 79
- #define MES_ROW_PASTE 21
- #define MES_COL_PASTE 1
- #define MES_NUM_ELEMENTS 1
- #define WALK_COLUMNS 54
- #define WALK_ROW_PASTE 0
- #define WALK_COL_PASTE 1
- #define FIELD_ROWS 6
- #define FIELD_COLUMNS 23
- #define FIELD_ROW_PASTE 0
- #define FIELD_COL_PASTE 55
- #define FIELD_NUM_ELEMENTS 4
- #define DIM_ROWS 10
- #define DIM_COLUMNS 12
- #define DIM_ROW_PASTE 0
- #define DIM_COL_PASTE 55
- #define DIS_ROWS 10
- #define DIS_COLUMNS 41
- #define DIS_ROW_PASTE 0
- #define DIS_COL_PASTE 37
- #define DIR_ROWS 12
- #define DIR_COLUMNS 28
- #define DIR_ROW_PASTE 0
- #define DIR_COL_PASTE 51
- #define HELP_ROWS 12
- #define HELP_COLUMNS 79
- #define HELP_ROW_PASTE 4
- #define HELP_COL_PASTE 1
- #define CDFNAME_ELEMENT_NUM 1
- #define NUMVAR_ELEMENT_NUM 2
- #define NUMREC_ELEMENT_NUM 3
- #define NUMDIM_ELEMENT_NUM 4
- #define DIMSIZ_ELEMENT_NUM 5
- #define ROW_OFFSET 2
- #define COL_OFFSET 2
- #endif
-
- /******************************************************************************
- * Contents of 'cdflist_vid_init.h' start here.
- ******************************************************************************/
-
- #if defined(CDFWALK)
- struct vid_struct CDF_display[CDF_NUM_ELEMENTS] =
- {
- { 1, 2, "CDF Name "},
- { 4, 2, "Number of Variables "},
- { 2, 46, "Number of Records "},
- { 3, 43, "Number of Dimensions "},
- { 4, 48, "Dimension Sizes "},
- };
- #else
- extern struct vid_struct CDF_display[CDF_NUM_ELEMENTS];
- #endif
-
- #if defined(CDFWALK)
- struct vid_struct KEY_display[KEY_NUM_ELEMENTS] =
- {
- { 1, 1, "\0"},
- };
- #else
- extern struct vid_struct KEY_display[KEY_NUM_ELEMENTS];
- #endif
-
- #if defined(CDFWALK)
- struct vid_struct MES_display[MES_NUM_ELEMENTS] =
- {
- { 1, 1, ""},
- };
- #else
- extern struct vid_struct MES_display[MES_NUM_ELEMENTS];
- #endif
-
- #if defined(CDFWALK)
- struct vid_struct VARSCROLL_display[VARSCROLL_NUM_ELEMENTS] =
- {
- { 1, 1, "Variable Scroller, direction ==> ?"},
- };
- #else
- extern struct vid_struct VARSCROLL_display[VARSCROLL_NUM_ELEMENTS];
- #endif
-
- #if defined(CDFWALK)
- struct vid_struct FIELD_display[FIELD_NUM_ELEMENTS] =
- {
- { 1, 1, "Walk Thru CDF data "},
- { 2, 1, "Select Input CDF Name"},
- { 3, 1, "Help "},
- { 4, 1, "Exit "},
- };
- #else
- extern struct vid_struct FIELD_display[FIELD_NUM_ELEMENTS];
- #endif
-
- #if defined(CDFWALK)
- FILE *HELP_ptr;
- #else
- extern FILE *HELP_ptr;
- #endif
-
- #ifdef vms
- static char WALK_label[] =
- "Variable Value Record/Dim# Index";
- static char WALK_EPOCH_label[] =
- "Variable DD-MON-YYYY HH:MM:SS.MSC Record/Dim# Index";
- #endif
-
- #if defined(unix) | defined(__MSDOS__)
- static char WALK_label[] =
- "Variable Value Record/Dim# Index ";
- static char WALK_EPOCH_label[] =
- "Variable DD-MON-YYYY HH:MM:SS.MSC Record/Dim# Index ";
- #endif
-
- #ifdef vms
- static char default_name[] = "[]";
- #endif
-
- #ifdef unix
- static char default_name[] = "./";
- #endif
-
- #if defined(__MSDOS__)
- static char default_name[] = ".";
- #endif
-
-
- #if defined(vms) | defined(__MSDOS__)
- long int print_error(struct GLOBAL_struct *screen, CDFstatus rcode);
- int alloc_all_dim(long int ***ptr, long int num_vars, long int num_dims);
- CDFstatus CDFWALK_open(struct CDF_struct *CDF,
- struct variable_struct **variables,
- union mixed **data_values);
- void CDFWALK_load_dim(struct CDF_struct *CDF,
- struct variable_struct variables[],
- struct vid_struct *DIM_display,
- long int dim_num,
- int *num_rows);
- void CDFWALK_list(struct GLOBAL_struct *screen,
- struct CDF_struct *CDF,
- struct variable_struct *variables,
- struct vid_struct *VAR_display,
- union mixed *data_values,
- long int *curr_field);
- void CDFWALK_scroll_var(struct GLOBAL_struct *screen,
- struct CDF_struct *CDF,
- struct variable_struct *variables,
- struct vid_struct *VAR_display,
- long int *var_index,
- union mixed data_values[],
- long int *field_num);
- void CDFWALK_print_data(struct GLOBAL_struct *screen,
- struct variable_struct *select,
- struct vid_struct *VAR_display,
- long int field_num,
- long int var_num,
- union mixed data_values[],
- int walker_only);
- void remove_trail(char *str);
- void CDFWALK_load_var(struct GLOBAL_struct *screen,
- struct CDF_struct *CDF,
- struct variable_struct *variables,
- struct vid_struct *VAR_display,
- long int index,
- union mixed data_values[]);
- void CDFWALK_get_data(struct CDF_struct *CDF,
- struct variable_struct select[],
- long int num_select,
- long int record_num,
- long int indices[],
- union mixed data_values[]);
- void CDFWALK_alloc_STRING(struct variable_struct select[],
- long int num_select,
- union mixed data_values[]);
- void CDFWALK_free_STRING(struct variable_struct select[],
- long int num_select,
- union mixed data_values[]);
-
- int init_var_display(struct vid_struct **display);
- void CDFWALK_walk_keydef(struct GLOBAL_struct *screen);
- void CDFWALK_Menu_keydef(struct GLOBAL_struct *screen);
- void CDFWALK_scroll_keydef(struct GLOBAL_struct *screen);
- void CDFWALK_load_discrete(char values[], long int num_values,
- long int num_bytes,
- struct vid_struct *DIS_display,
- int *num_rows, int *num_cols);
- void CDFWALK_get_EPOCH(long int CDF_id, long int var_num,
- long int max_record_num, double bin_values[],
- char *char_values);
- void CDFWALK_get_discrete(long int CDF_id, long int dim_num,
- long int var_id, long int data_type,
- long int num_values, double bin_values[],
- char *char_values);
- void CDFWALK_get_discrete_char(long int CDF_id, long int dim_num,
- long int var_num,long int num_values,
- long int num_bytes, char *char_values);
- void CDFWALK_clear_row(WINDOWid vid, struct vid_struct display[],
- int start_elem, int end_elem,
- int end_col);
- void CDFWALK_help(struct GLOBAL_struct *screen);
- int lastc(char *buf);
- void CDFWALK_field_menu(struct GLOBAL_struct *screen,
- long int *option);
- void CDFWALK_open_screen(struct GLOBAL_struct *screen);
-
- #if defined(__MSDOS__)
- void CDFWALK_draw_main_screen(struct GLOBAL_struct *screen,
- long int WALK, long int EPOCH);
- #endif
-
- void CDFWALK_select_menu_item( WINDOWid vid, WINDOWid MES_vid,
- long int *rvalue, struct vid_struct display[],
- int num_elements, int num_rows,
- int num_columns,
- int row_start,int col_start,
- int mode, int *termcode);
- int CDFWALK_CDF_name(struct GLOBAL_struct *screen,
- struct CDF_struct *CDF,
- long int *field_num,
- long int *input_type);
- void CDFWALK_CDF_info(struct GLOBAL_struct *screen,
- struct CDF_struct *CDF,
- struct vid_struct CDF_display[]);
- void load_vid(WINDOWid vid, struct vid_struct display[],
- int start_element, int num_elements, char label[]);
- void load_vid_element(WINDOWid vid, struct vid_struct display[],
- int element_num);
- void CDFWALK_load_keydef(WINDOWid vid, char line1[], char line2[]);
- void CDFWALK_put_selection(WINDOWid vid, struct vid_struct display[],
- int element_num, char selection[],
- int field_len, int video_type);
- void CDFWALK_put_value(WINDOWid vid, struct vid_struct display[],
- int element_num, double bin_value);
- void CDFWALK_put_message(WINDOWid vid, char message[], int rbell,
- int video_type, int pause);
- void load_menu(WINDOWid vid, struct vid_struct display[],
- int num_elements, char label[]);
- void zero_replace(char string[]);
- void CDFWALK_left_justify (char field[]);
- int precision(double num);
- CDFstatus CDFWALK_close(struct CDF_struct *CDF,
- struct variable_struct variables[]);
- void CDFWALK_close_screen(void);
- double r4_r8(float *r4);
- long int CDFWALK_get_index(CDFid CDF_id, long int dim_num, long int var_num,
- double value, long int data_type,
- double dim_values[], long int num_values);
- long int CDFWALK_get_index_char(CDFid CDF_id, long int dim_num,
- long int var_num,char *value, long int num_bytes,
- char dim_values[], long int num_values);
- void make_it_upper(char *upstring, char *string);
- long int how_many_match(char *str1, char *str2);
- long int check_epoch(char str[], double *scale);
- void CDFWALK_free_discrete(struct variable_struct variables[],
- long int num_vars);
- #endif
-
- #if defined(unix)
- long int print_error();
- int alloc_all_dim();
- CDFstatus CDFWALK_open();
- void CDFWALK_load_dim();
- void CDFWALK_list();
- void CDFWALK_scroll_var();
- void CDFWALK_print_data();
- void remove_trail();
- void CDFWALK_load_var();
- void CDFWALK_get_data();
- void CDFWALK_alloc_STRING();
- void CDFWALK_free_STRING();
- int init_var_display();
- void CDFWALK_walk_keydef();
- void CDFWALK_Menu_keydef();
- void CDFWALK_scroll_keydef();
- void CDFWALK_load_discrete();
- void CDFWALK_get_EPOCH();
- void CDFWALK_get_discrete();
- void CDFWALK_get_discrete_char();
- void CDFWALK_clear_row();
- void CDFWALK_help();
- int lastc();
- void CDFWALK_field_menu();
- void CDFWALK_open_screen();
- void CDFWALK_draw_main_screen();
- void CDFWALK_select_menu_item();
- int CDFWALK_CDF_name();
- void CDFWALK_CDF_info();
- void load_vid();
- void load_vid_element();
- void CDFWALK_load_keydef();
- void CDFWALK_put_selection();
- void CDFWALK_put_value();
- void CDFWALK_put_message();
- void load_menu();
- void zero_replace();
- void CDFWALK_left_justify ();
- int precision();
- CDFstatus CDFWALK_close();
- void CDFWALK_close_screen();
- double r4_r8();
- long int CDFWALK_get_index();
- long int CDFWALK_get_index_char();
- void make_it_upper();
- long int how_many_match();
- long int check_epoch();
- void CDFWALK_free_discrete();
- #endif
-
- #if defined(CDFWALK)
- char VAR_label[] = "Variable Selection\0";
- char KEY_label[] = "Keypad Definitions\0";
- char MES_label[] = "Message Buffer\0";
- char NO_label[] = "\0";
- #else
- extern char VAR_label[];
- extern char KEY_label[];
- extern char MES_label[];
- extern char NO_label[];
- #endif
-